package com.base.cn.platform.os.entity.op.coupon;

import com.base.cn.platform.os.common.annotation.ImgAttr;
import com.base.cn.platform.os.common.mybatis.BaseEntity;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * 优惠券表
 * Created by ll on 2018/05/09.
 */
@Data

public class OpCoupon extends BaseEntity {

    private String title;//优惠券名称
    private Integer codeNum;//生成数量
    private Integer useCount;//使用数
    private Integer invalidCount;//作废数
    private String couponBatch;//优惠券批次
    private Integer type;//类型，1折扣券，2定额券
    private Double limitAtion;//优惠限额，type=1时为折扣，type=2时为金额
    private Integer receiveType;//领取方式，1用户领取，2定向发放
    private Integer orientType;//针对发放方式，1针对用户，2针对场景
    private Integer userType;//针对用户的用户类型，1全部用户，2部分用户
    private Integer conditions;//获取条件，1手动发放，2新用户注册后自动获取，3学员生日获取，4邀请注册获取，5消费任意金额获取，6免费直播发放，7活动  11优惠券兑换
    private String openCourseIds;//免费直播程ID串，condition=6时有用
    private Integer settingStatus;//1设置 2不设置
    private String courseIds;//限制使用的课程ID串
    private Double minAmount;//使用的最低限额
    private Integer timeType;//使用时间，1指定时间段内，2不限制时间
    private Date beginTime;//开始时间，timeType=1时起作用
    private Date endTime;//结束时间，timeType=1时起作用
    @ImgAttr
    private String summary;//描述
    /**
     * status 状态，1正常，2冻结，3删除 4作废',
     * createTime 创建时间
     * updateTime 修改时间
     */
    //扩招属性------------------
    private String couponIds;//优惠券Ids
    //是否已领取
    private boolean receive;

    /**
     * 是否被积分商品ID
     */
    private BigDecimal integralGoodId;

    private Map<String,Object> subjectMap;//专业
    private Integer endDayNum;//距离过期天数
    private List<Map<String,Object>> courseNameList;//课程列表
    private List<Map<String,Object>> courseList;//课程列表
    private List<Map<String,Object>> openCourseList;//免费直播程
    private CouponShopData shopData;//优惠券关联的商品
    private List<OpCouponTermShop> opCouponTermShopList;//指定可以推广的商品列表
}
